<?php
//Config : Les informations personnels de l'instance (log, pass, etc)
require("../include/config.php");

//API Fonctions : les fonctions fournis de base par l'API
require("../API/php/fonctions.php");

//Header établie la connection à la base $connection
require("../API/php/header.php");

//Fonctions : Fonctions personnelles de l'instance
require("../php/fonctions.php");

//Mode debug
$modeDebug = false;

//Public ou privé (clé obligatoire)
$modePublic = true;

//Mode de sortie text,json,xml,csv
//pour xml et csv $object_retour->data["resultat"] doit contenir qu'un est unique array
$modeSortie = "json";

//Liens de test
// phpsql/exemple.php?milis=123450&keyAuthODA=42c643cc44c593c5c2b4c5f6d40489dd&ctrl=ok&test=hello

//Définition des entrants
$arrayInput = array(
    "ctrl" => null
);

//Définition des entrants optionel
$arrayInputOpt = array(
    "option" => null
);

//Récupération des entrants
$arrayValeur = recupInput($arrayInput,$arrayInputOpt);

//Object retour minima
// $object_retour->strErreur string
// $object_retour->data  string
// $object_retour->statut  string

//--------------------------------------------------------------------------
//Pour test on récupère les paramètres de l'appli
$strSql = "SELECT DISTINCT a.`name` as 'projet', c.`validatedWork` as 'valide'
    FROM `ria`.`riaproject` a, `ria`.`riaplanningelement` c
    WHERE 1=1
    AND a.`id` = c.`idProject`
    AND a.`idStatus` <> 4
    AND c.`refType` = 'Project'
    AND a.`id` in (
        SELECT DISTINCT b.`idProject`
        FROM `ria`.`riawork` b
    )
    ORDER BY a.`id`
";

// On envois la requète
$select = $connection->query($strSql) or die('Erreur SQL !'.$strSql.'<br>'.print_r($connection->errorInfo(), true));

// On indique que nous utiliserons les résultats en tant qu'objet
$select->setFetchMode(PDO::FETCH_OBJ);

// On transforme les résultats en tableaux d'objet
$projets = new stdClass();
$projets->data = $select->fetchAll(PDO::FETCH_OBJ);
$projets->nombre = count($projets->data);

$object_retour->data["projets"] = $projets;

//--------------------------------------------------------------------------
//Pour test on récupère les paramètres de l'appli
$strSql = "SELECT DISTINCT b.`week` as 'semaine'
    FROM `ria`.`riaproject` a, `ria`.`riawork` b
    WHERE 1=1
    AND a.`id` = b.`idProject`
    AND a.`idStatus` <> 4
    ORDER BY `semaine`
";

// On envois la requète
$select = $connection->query($strSql) or die('Erreur SQL !'.$strSql.'<br>'.print_r($connection->errorInfo(), true));

// On indique que nous utiliserons les résultats en tant qu'objet
$select->setFetchMode(PDO::FETCH_OBJ);

// On transforme les résultats en tableaux d'objet
$semaines = new stdClass();
$semaines->data = $select->fetchAll(PDO::FETCH_OBJ);
$semaines->nombre = count($semaines->data);

$object_retour->data["semaines"] = $semaines;

//--------------------------------------------------------------------------
//Pour test on récupère les paramètres de l'appli
$strSql = "SELECT g.`projets`, g.`semaine`, IFNULL(SUM(h.`work`),0) as 'charge'
    FROM
    (
        SELECT * FROM 
        (
            SELECT DISTINCT b.`week` as 'semaine'
            FROM `ria`.`riaproject` a, `ria`.`riawork` b
            WHERE 1=1
            AND a.`id` = b.`idProject`
            AND a.`idStatus` <> 4
        ) c, (
            SELECT DISTINCT e.`id` as 'idProject', e.`name` as 'projets'
            FROM `ria`.`riaproject` e
            WHERE 1=1
            AND e.`idStatus` <> 4
            AND e.`id` in (
                SELECT DISTINCT f.`idProject`
                FROM `ria`.`riawork` f
            )
        ) d
    ) g
    LEFT JOIN `ria`.`riawork` h
        ON g.`idProject` = h.`idProject`
        AND g.`semaine` = h.`week`
    GROUP BY g.`idProject`, g.`semaine`
";

// On envois la requète
$select = $connection->query($strSql) or die('Erreur SQL !'.$strSql.'<br>'.print_r($connection->errorInfo(), true));

// On indique que nous utiliserons les résultats en tant qu'objet
$select->setFetchMode(PDO::FETCH_OBJ);

// On transforme les résultats en tableaux d'objet
$consoSemaines = new stdClass();
$consoSemaines->data = $select->fetchAll(PDO::FETCH_OBJ);
$consoSemaines->nombre = count($consoSemaines->data);

$object_retour->data["consoSemaines"] = $consoSemaines;

//--------------------------------------------------------------------------
if($modeDebug){
    $strSorti .= ($strSql);
}

require("../API/php/footer.php");
?>